<?php
 /**
 * Creation d'un graphe indiquant si la sous-matiere est imprimee ou pas
 * @return mixed Image au format PNG (par defaut)
 */
 $cf = IsSet ($_POST ["cf"]) ? $_POST ["cf"] : (IsSet ($_GET ["cf"]) ? $_GET ["cf"] : "#FFFFFF") ;
 $ct = IsSet ($_POST ["ct"]) ? $_POST ["ct"] : (IsSet ($_GET ["ct"]) ? $_GET ["ct"] : "#00FF00") ;
 $generation = IsSet ($_POST ["generation"]) ? $_POST ["generation"] : (IsSet ($_GET ["generation"]) ? $_GET ["generation"] : 1) ;
 $nom_fichier = IsSet ($_POST ["nom_fichier"]) ? $_POST ["nom_fichier"] : (IsSet ($_GET ["nom_fichier"]) ? $_GET ["nom_fichier"] : "") ;
 $dr = IsSet ($_POST ["dr"]) ? $_POST ["dr"] : (IsSet ($_GET ["dr"]) ? $_GET ["dr"] : 0) ;
 $dv = IsSet ($_POST ["dv"]) ? $_POST ["dv"] : (IsSet ($_GET ["dv"]) ? $_GET ["dv"] : 5) ;
 $db = IsSet ($_POST ["db"]) ? $_POST ["db"] : (IsSet ($_GET ["db"]) ? $_GET ["db"] : 0) ;

 /**
 * Extraction de la couleur en format RRVVBB en tableau RR,VV,BB
 * @param string $rgb Couleur format RRVVBB ou #RRVVBB
 * @return array Tableau des composantes de bases R,V et B
 */
 Function extraction_couleur ($rgb)
  {
   If (SubStr ($rgb, 0, 1) == "#") { $decalage = 1 ; } Else { $decalage = 0 ; }
   $couleur [0] = (integer)HexDec (SubStr ($rgb, $decalage+0, 2)) ; 
   $couleur [1] = (integer)HexDec (SubStr ($rgb, $decalage+2, 2)) ;
   $couleur [2] = (integer)HexDec (SubStr ($rgb, $decalage+4, 2)) ;
   Return $couleur ;
  }

 // Creation de l'image
 $lg = 8 ;
 $lh = 8 ;
 $cx = Round ($lg/2) ;
 $cy = Round ($lh/2) ;
 $image = @ImageCreateTrueColor ($lg, $lh) Or Die ("Je ne peux pas initialiser la bibliotheque GD >= 2.0.1 : Voir l'administrateur reseau") ;
 
 // Couleur du tracee
 $c = extraction_couleur ($cf) ;
 $fond = @ImageColorAllocate ($image, $c [0], $c [1], $c [2]) ;
 @ImageFilledRectangle ($image, 0, 0, $lg, $lh, $fond) ;
 $c = extraction_couleur ($ct) ;
 For ($i = 1 ; $i <= $lg ; $i++)
  {
   $trace [$i] = ImageColorAllocate ($image, $c [0]-$dr*($i-1), $c [1]-$dv*($i-1), $c [2]-$db*($i-1)) ;
   @ImageEllipse ($image, $cx, $cy, $i, $i, $trace [$i]) ;
  }
 
 If ($generation == 1)
  {
   Header ("Content-type: image/png") ;
   @ImagePng ($image) ;
  }
 ElseIf ($generation == 2)
  {
   @ImagePng ($image, $nom_fichier) ;
  }
 @ImageDestroy ($image) ;
?>